Use case: DMA channel direct mode transfer in interrupt mode ¶
Sequence diagram ¶
Code snippet ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_DMA_Init(&hdma);
HAL_DMA_Start_IT(&hdma, (uint32_t)srcBuffer, (uint32_t)destBuffer, dataSize);
|
HAL_DMA_Init(&hdma1, GPDMA1_CH0);
HAL_DMA_SetConfigDirectXfer(&hdma, &directXferConfig);
HAL_DMA_StartDirectXfer_IT(&hdma, (uint32_t)srcBuffer, (uint32_t)destBuffer, dataSize * multiplier);
|
Key changes ¶
HAL2 starts interrupt-driven direct transfers using
HAL_DMA_StartDirectXfer_IT()(or the optimized variant).HAL2 uses
HAL_DMA_SetConfigDirectXfer()to configure the transfer before starting it.The DMA interrupt handler remains
HAL_DMA_IRQHandler().

